跳到主要内容

HITL 与 steering

四种介入模式、中断恢复机制、不重启纠偏与 kill switch 的设计

核心要点

  • HITL 四模式:approve / edit / reject / respond
  • 中断分静态与动态,可持久等待
  • steering 核心是"不重启"纠偏
  • 纠偏 / 覆盖 / 取消三种手势要区分
  • kill switch 需多级 + 回滚,非简单停进程

本文讲运行中的人机协作。执行前的权限审批见 02-权限与审批

人在哪些点介入 agent?

核心问题:human-in-the-loop 具体在 agent 流程的哪些位置插手?

四种介入模式:批准、编辑、拒绝、回应[1]。LangGraph 把人工介入标准化为这四类动作,覆盖从轻到重的干预。

  • approve(批准):放行一个待执行的操作。
  • edit(编辑):修改 agent 的提议再执行。
  • reject(拒绝):否决并要求重来。
  • respond(回应):回答 agent 的提问、补充信息。

这些介入点通过中断机制实现,状态持久化在 checkpointer 中可无限期等待人响应。可借鉴的判断:介入不是只有"批准/拒绝",编辑和回应让人能精修而非推倒重来

怎么中断又能恢复?

核心问题:让 agent 停下等人,之后怎么无损接着跑?

用中断 + checkpoint:静态或动态触发中断,状态落盘,人响应后从断点恢复[1]。LangGraph 提供两类中断:编译期的静态中断和运行时的动态 interrupt(),都通过 Command(resume=...) 恢复。

关键是状态持久化(04-编排/06-长任务与状态 的 checkpoint 机制):中断后状态存在 checkpointer 里,可以无限期等待——人下班了明天再批也不丢状态。这把"等人"从阻塞变成可持久挂起。可借鉴的设计:中断要配持久化,否则等人就意味着占着资源空转

图 9.2: HITL 中断—恢复时序:中断触发后状态落盘 checkpointer 可无限期挂起,人介入后从断点恢复,已完成的工作不丢失

运行中怎么纠偏不重启?

核心问题:agent 跑偏了,但已经干了不少活,怎么纠正又不浪费?

steering 的核心是"不重启"——用 checkpoint-and-inject 保留已完成工作,注入修正指令[2]。直接 kill 重来会丢掉所有进展,steering 让纠偏成本降到最低。

三种机制:checkpoint-and-inject 保留已完成工作并注入新指令、把计划变成可编辑的一等对象、在工具调用间轮询修正指令。UX 上要区分三种手势:纠偏(微调方向)、覆盖(改目标)、取消(中止)——混为一谈会导致用户想微调却误删了有效工作。可借鉴的判断:给 steering 设计专门的"不丢工作"路径,而非只有"重启"一个选项。

怎么安全停掉 agent?

核心问题:真要紧急停掉 agent,直接杀进程行吗?

不行——kill switch 需要多级 + 回滚,因为简单停进程处理不了已完成的副作用。agent 可能已经写了文件、发了请求,杀进程止不住这些已发生的影响。

有效的 kill switch 分多级(任务级 / agent 级 / 系统级),配合回滚注册表和审计日志:停下来还要能撤销已造成的副作用。这与 02-权限与审批 的"不可逆操作每次确认"互补——前者防患于未然,kill switch 兜底于已然。可借鉴的原则:停止能力要覆盖"已完成的副作用",不能只是终止执行

Takeaway

知识点核心结论
HITL 四模式approve / edit / reject / respond,从轻到重
中断恢复静态/动态中断 + checkpoint 持久化,可无限期等人
steeringcheckpoint-and-inject 不重启纠偏,保留已完成工作
三种手势纠偏 / 覆盖 / 取消要区分,防误删有效工作
kill switch多级 + 回滚 + 审计,覆盖已完成副作用

参考资料

  1. LangChain. Making it easier to build human-in-the-loop agents with interrupt. 2025. https://www.langchain.com/blog/making-it-easier-to-build-human-in-the-loop-agents-with-interrupt
  2. Liu et al. Dive into Claude Code: The Design Space of Today's and Future AI Agent Systems. arXiv:2604.14228, 2026. https://arxiv.org/abs/2604.14228

延伸阅读